// Copyright 2019 GitBitEx.com
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

export class SocketMsgBuffer {

    private timeout: number = 0;
    private buffers: any[] = [];
    private action: (buffers: any[]) => void;

    constructor(action: (buffers: any[]) => void, timeout: number = 200) {
        this.timeout = timeout;
        this.action = action;
        setInterval(() => {
            if (this.buffers.length > 0) {
                this.action(this.buffers);
                this.buffers = [];
            }
        }, this.timeout);
    }

    push(data: any) {
        this.buffers.push(data);
    }

}